home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / e-lang / bguiv412.lha / BGUI_Ev41_2 / sources / libraries / bgui_macros.e next >
Text File  |  1996-05-01  |  41KB  |  935 lines

  1. OPT MODULE
  2. OPT EXPORT
  3. OPT PREPROCESS
  4. /*  $VER: libraries/bgui_macros.m 41.2 (25.4.96)
  5. **  AmigaE module for the bgui.library
  6. **
  7. **  bgui.library macros - by Dominique Dutoit
  8. **
  9. **  (C) Copyright 1996 Ian J. Einman.
  10. **  (C) Copyright 1993-1996 Jaba Development.
  11. **  (C) Copyright 1993-1996 Jan van den Baard.
  12. **  All Rights Reserved.
  13. **/
  14. CONST   BGUIMACROVERSION        = 41
  15. CONST   MACROS4BGUIVERSION      = 41
  16. /*      General object creation macros.   */
  17. #define LabelObject             BgUI_NewObjectA( BGUI_LABEL_IMAGE,      [ TAG_IGNORE, 0
  18. #define FrameObject             BgUI_NewObjectA( BGUI_FRAME_IMAGE,      [ TAG_IGNORE, 0
  19. #define HGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ TAG_IGNORE, 0
  20. #define VGroupObject            BgUI_NewObjectA( BGUI_GROUP_GADGET,     [ GROUP_STYLE, GRSTYLE_VERTICAL
  21. #define ButtonObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ TAG_IGNORE, 0
  22. #define ToggleObject            BgUI_NewObjectA( BGUI_BUTTON_GADGET,    [ GA_TOGGLESELECT, TRUE
  23. #define CycleObject             BgUI_NewObjectA( BGUI_CYCLE_GADGET,     [ TAG_IGNORE, 0
  24. #define CheckBoxObject          BgUI_NewObjectA( BGUI_CHECKBOX_GADGET,  [ TAG_IGNORE, 0
  25. #define InfoObject              BgUI_NewObjectA( BGUI_INFO_GADGET,      [ TAG_IGNORE, 0
  26. #define StringObject            BgUI_NewObjectA( BGUI_STRING_GADGET,    [ TAG_IGNORE, 0
  27. #define PropObject              BgUI_NewObjectA( BGUI_PROP_GADGET,      [ TAG_IGNORE, 0
  28. #define IndicatorObject         BgUI_NewObjectA( BGUI_INDICATOR_GADGET, [ TAG_IGNORE, 0
  29. #define ProgressObject          BgUI_NewObjectA( BGUI_PROGRESS_GADGET,  [ TAG_IGNORE, 0
  30. #define SliderObject            BgUI_NewObjectA( BGUI_SLIDER_GADGET,    [ TAG_IGNORE, 0
  31. #define PageObject              BgUI_NewObjectA( BGUI_PAGE_GADGET,      [ TAG_IGNORE, 0
  32. #define MxObject                BgUI_NewObjectA( BGUI_MX_GADGET,        [ TAG_IGNORE, 0
  33. #define ListviewObject          BgUI_NewObjectA( BGUI_LISTVIEW_GADGET,  [ TAG_IGNORE, 0
  34. #define ExternalObject          BgUI_NewObjectA( BGUI_EXTERNAL_GADGET,  [ GA_LEFT, 0, GA_TOP, 0, GA_WIDTH, 0, GA_HEIGHT, 0
  35. #define SeparatorObject         BgUI_NewObjectA( BGUI_SEPARATOR_GADGET, [ TAG_IGNORE, 0
  36. #define WindowObject            BgUI_NewObjectA( BGUI_WINDOW_OBJECT,    [ TAG_IGNORE, 0
  37. #define FileReqObject           BgUI_NewObjectA( BGUI_FILEREQ_OBJECT,   [ TAG_IGNORE, 0
  38. #define CommodityObject         BgUI_NewObjectA( BGUI_COMMODITY_OBJECT, [ TAG_IGNORE, 0
  39. #define EndObject               TAG_END ] )
  40. /* Typo */
  41. #define SeperatorObject         SeparatorObject
  42. /* Label Creation */
  43. #define Label( l )              LAB_LABEL, l
  44. #define UScoreLabel( l, u )     LAB_LABEL, l, LAB_UNDERSCORE, u
  45. #define Style( s )              LAB_STYLE, s
  46. #define Place( p )              LAB_PLACE, p
  47. /* Frames */
  48. #define ButtonFrame             FRM_TYPE, FRTYPE_BUTTON
  49. #define RidgeFrame              FRM_TYPE, FRTYPE_RIDGE
  50. #define DropBoxFrame            FRM_TYPE, FRTYPE_DROPBOX
  51. #define NeXTFrame               FRM_TYPE, FRTYPE_NEXT
  52. #define RadioFrame              FRM_TYPE, FRTYPE_RADIOBUTTON
  53. #define XenFrame                FRM_TYPE, FRTYPE_XEN_BUTTON
  54. #define TabAboveFrame           FRM_TYPE, FRTYPE_TAB_ABOVE
  55. #define TabBelowFrame           FRM_TYPE, FRTYPE_TAB_BELOW
  56. #define BorderFrame             FRM_TYPE, FRTYPE_BORDER
  57. #define FuzzButtonFrame         FRM_TYPE, FRTYPE_FUZZ_BUTTON
  58. #define FuzzRidgeFrame          FRM_TYPE, FRTYPE_FUZZ_RIDGE
  59. /* For clarity */
  60. #define StringFrame             RidgeFrame
  61. #define MxFrame                 RadioFrame
  62. #define FrameTitle(t)           FRM_TITLE, t
  63. /* Built-in back fills */
  64. #define ShineRaster             FRM_BACKFILL, SHINE_RASTER
  65. #define ShadowRaster            FRM_BACKFILL, SHADOW_RASTER
  66. #define ShineShadowRaster       FRM_BACKFILL, SHINE_SHADOW_RASTER
  67. #define FillRaster              FRM_BACKFILL, FILL_RASTER
  68. #define ShineFillRaster         FRM_BACKFILL, SHINE_FILL_RASTER
  69. #define ShadowFillRaster        FRM_BACKFILL, SHADOW_FILL_RASTER
  70. #define ShineBlock              FRM_BACKFILL, SHINE_BLOCK
  71. #define ShadowBlock             FRM_BACKFILL, SHADOW_BLOCK
  72. /* Vector image */
  73. #define GetPath                 VIT_BUILTIN, BUILTIN_GETPATH
  74. #define GetFile                 VIT_BUILTIN, BUILTIN_GETFILE
  75. #define CheckMark               VIT_BUILTIN, BUILTIN_CHECKMARK
  76. #define PopUp                   VIT_BUILTIN, BUILTIN_POPUP
  77. #define ArrowUp                 VIT_BUILTIN, BUILTIN_ARROW_UP
  78. #define ArrowDown               VIT_BUILTIN, BUILTIN_ARROW_DOWN
  79. #define ArrowLeft               VIT_BUILTIN, BUILTIN_ARROW_LEFT
  80. #define ArrowRight              VIT_BUILTIN, BUILTIN_ARROW_RIGHT
  81. /* Group class macros */
  82. #define StartMember             GROUP_MEMBER
  83. #define EndMember               TAG_END, 0
  84. #define Spacing(p)              GROUP_SPACING, p
  85. #define HOffset(p)              GROUP_HORIZOFFSET, p
  86. #define VOffset(p)              GROUP_VERTOFFSET, p
  87. #define LOffset(p)              GROUP_LEFTOFFSET, p
  88. #define ROffset(p)              GROUP_RIGHTOFFSET, p
  89. #define TOffset(p)              GROUP_TOPOFFSET, p
  90. #define BOffset(p)              GROUP_BOTTOMOFFSET, p
  91. #define VarSpace(w)             GROUP_SPACEOBJECT, w
  92. #define EqualWidth              GROUP_EQUALWIDTH, TRUE
  93. #define EqualHeight             GROUP_EQUALHEIGHT, TRUE
  94. /* Layout macros */
  95. #define FixMinWidth             LGO_FIXMINWIDTH, TRUE
  96. #define FixMinHeight            LGO_FIXMINHEIGHT, TRUE
  97. #define Weight(w)               LGO_WEIGHT, w
  98. #define FixWidth(w)             LGO_FIXWIDTH, w
  99. #define FixHeight(h)            LGO_FIXHEIGHT, h
  100. #define Align                   LGO_ALIGN, TRUE
  101. #define FixMinSize              FixMinWidth, FixMinHeight
  102. #define FixSize(w,h)            FixWidth(w), FixHeight(h)
  103. #define NoAlign                 LGO_NOALIGN, TRUE
  104. /* Page class macros */
  105. #define PageMember              PAGE_MEMBER
  106. /* "Quick" button creation macros */
  107. #define Button(label,id)\
  108.         ButtonObject,\
  109.                 LAB_LABEL,              label,\
  110.                 GA_ID,                  id,\
  111.                 ButtonFrame,\
  112.         EndObject
  113. #define GetPathButton(id)\
  114.         ButtonObject,\
  115.                 GetPath,\
  116.                 GA_ID,                  id,\
  117.                 ButtonFrame,\
  118.         EndObject, FixMinWidth
  119. #define GetFileButton(id)\
  120.         ButtonObject,\
  121.                 GetFile,\
  122.                 GA_ID,                  id,\
  123.                 ButtonFrame,\
  124.         EndObject, FixMinWidth
  125. #define PopupButton(id)\
  126.         ButtonObject,\
  127.                 VIT_BUILTIN,            BUILTIN_POPUP,\
  128.                 GA_ID,                  id,\
  129.                 ButtonFrame,\
  130.         EndObject, FixMinWidth
  131. #define KeyButton(label,id)\
  132.         ButtonObject,\
  133.                 LAB_LABEL,              label,\
  134.                 LAB_UNDERSCORE,         "_",\
  135.                 GA_ID,                  id,\
  136.                 ButtonFrame,\
  137.         EndObject
  138. #define Toggle(label,state,id)\
  139.         ToggleObject,\
  140.                 LAB_LABEL,              label,\
  141.                 GA_ID,                  id,\
  142.                 GA_SELECTED,            state,\
  143.                 ButtonFrame,\
  144.         EndObject
  145. #define KeyToggle(label,state,id)\
  146.         ToggleObject,\
  147.                 LAB_LABEL,              label,\
  148.                 LAB_UNDERSCORE,         "_",\
  149.                 GA_ID,                  id,\
  150.                 GA_SELECTED,            state,\
  151.                 ButtonFrame,\
  152.         EndObject
  153. #define XenButton(label,id)\
  154.         ButtonObject,\
  155.                 LAB_LABEL,              label,\
  156.                 GA_ID,                  id,\
  157.                 XenFrame,\
  158.         EndObject
  159. #define XenKeyButton(label,id)\
  160.         ButtonObject,\
  161.                 LAB_LABEL,              label,\
  162.                 LAB_UNDERSCORE,         "_",\
  163.                 GA_ID,                  id,\
  164.                 XenFrame,\
  165.         EndObject
  166. #define XenToggle(label,state,id)\
  167.         ToggleObject,\
  168.                 LAB_LABEL,              label,\
  169.                 GA_ID,                  id,\
  170.                 GA_SELECTED,            state,\
  171.                 XenFrame,\
  172.         EndObject
  173. #define XenKeyToggle(label,state,id)\
  174.         ToggleObject,\
  175.                 LAB_LABEL,              label,\
  176.                 LAB_UNDERSCORE,         "_",\
  177.                 GA_ID,                  id,\
  178.                 GA_SELECTED,            state,\
  179.                 XenFrame,\
  180.         EndObject
  181. /* "Quick" cycle creation macros. */
  182. #define Cycle(label,labels,active,id)\
  183.         CycleObject,\
  184.                 LAB_LABEL,              label,\
  185.                 GA_ID,                  id,\
  186.                 FRM_TYPE,               FRTYPE_BUTTON,\
  187.                 CYC_LABELS,             labels,\
  188.                 CYC_ACTIVE,             active,\
  189.         EndObject
  190. #define KeyCycle(label,labels,active,id)\
  191.         CycleObject,\
  192.                 LAB_LABEL,              label,\
  193.                 LAB_UNDERSCORE,         "_",\
  194.                 GA_ID,                  id,\
  195.                 FRM_TYPE,               FRTYPE_BUTTON,\
  196.                 CYC_LABELS,             labels,\
  197.                 CYC_ACTIVE,             active,\
  198.         EndObject
  199. #define XenCycle(label,labels,active,id)\
  200.         CycleObject,\
  201.                 LAB_LABEL,              label,\
  202.                 GA_ID,                  id,\
  203.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  204.                 CYC_LABELS,             labels,\
  205.                 CYC_ACTIVE,             active,\
  206.         EndObject
  207. #define XenKeyCycle(label,labels,active,id)\
  208.         CycleObject,\
  209.                 LAB_LABEL,              label,\
  210.                 LAB_UNDERSCORE,         "_",\
  211.                 GA_ID,                  id,\
  212.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  213.                 CYC_LABELS,             labels,\
  214.                 CYC_ACTIVE,             active,\
  215.         EndObject
  216. #define PopCycle(label,labels,active,id)\
  217.         CycleObject,\
  218.                 LAB_LABEL,              label,\
  219.                 GA_ID,                  id,\
  220.                 FRM_TYPE,               FRTYPE_BUTTON,\
  221.                 CYC_LABELS,             labels,\
  222.                 CYC_ACTIVE,             active,\
  223.                 CYC_POPUP,              TRUE,\
  224.         EndObject
  225. #define KeyPopCycle(label,labels,active,id)\
  226.         CycleObject,\
  227.                 LAB_LABEL,              label,\
  228.                 LAB_UNDERSCORE,         "_",\
  229.                 GA_ID,                  id,\
  230.                 FRM_TYPE,               FRTYPE_BUTTON,\
  231.                 CYC_LABELS,             labels,\
  232.                 CYC_ACTIVE,             active,\
  233.                 CYC_POPUP,              TRUE,\
  234.         EndObject
  235. #define XenPopCycle(label,labels,active,id)\
  236.         CycleObject,\
  237.                 LAB_LABEL,              label,\
  238.                 GA_ID,                  id,\
  239.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  240.                 CYC_LABELS,             labels,\
  241.                 CYC_ACTIVE,             active,\
  242.                 CYC_POPUP,              TRUE,\
  243.         EndObject
  244. #define XenKeyPopCycle(label,labels,active,id)\
  245.         CycleObject,\
  246.                 LAB_LABEL,              label,\
  247.                 LAB_UNDERSCORE,         "_",\
  248.                 GA_ID,                  id,\
  249.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  250.                 CYC_LABELS,             labels,\
  251.                 CYC_ACTIVE,             active,\
  252.                 CYC_POPUP,              TRUE,\
  253.         EndObject
  254. /* "Quick" checkbox creation macros. */
  255. #define CheckBox(label,state,id)\
  256.         CheckBoxObject,\
  257.                 LAB_LABEL,              label,\
  258.                 GA_ID,                  id,\
  259.                 FRM_TYPE,               FRTYPE_BUTTON,\
  260.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  261.                 GA_SELECTED,            state,\
  262.         EndObject, FixMinSize
  263. #define KeyCheckBox(label,state,id)\
  264.         CheckBoxObject,\
  265.                 LAB_LABEL,              label,\
  266.                 LAB_UNDERSCORE,         "_",\
  267.                 GA_ID,                  id,\
  268.                 FRM_TYPE,               FRTYPE_BUTTON,\
  269.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  270.                 GA_SELECTED,            state,\
  271.         EndObject, FixMinSize
  272. #define KeyCheckBoxRt(label,state,id)\
  273.         CheckBoxObject,\
  274.                 LAB_LABEL,              label,\
  275.                 LAB_UNDERSCORE,         "_",\
  276.                 LAB_PLACE,              PLACE_RIGHT,\
  277.                 GA_ID,                  id,\
  278.                 FRM_TYPE,               FRTYPE_BUTTON,\
  279.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  280.                 GA_SELECTED,            state,\
  281.         EndObject, FixMinSize
  282. #define XenCheckBox(label,state,id)\
  283.         CheckBoxObject,\
  284.                 LAB_LABEL,              label,\
  285.                 GA_ID,                  id,\
  286.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  287.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  288.                 GA_SELECTED,            state,\
  289.         EndObject, FixMinSize
  290. #define XenKeyCheckBox(label,state,id)\
  291.         CheckBoxObject,\
  292.                 LAB_LABEL,              label,\
  293.                 LAB_UNDERSCORE,         "_",\
  294.                 GA_ID,                  id,\
  295.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  296.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  297.                 GA_SELECTED,            state,\
  298.         EndObject, FixMinSize
  299. #define CheckBoxNF(label,state,id)\
  300.         CheckBoxObject,\
  301.                 LAB_LABEL,              label,\
  302.                 GA_ID,                  id,\
  303.                 FRM_TYPE,               FRTYPE_BUTTON,\
  304.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  305.                 GA_SELECTED,            state,\
  306.         EndObject
  307. #define KeyCheckBoxNF(label,state,id)\
  308.         CheckBoxObject,\
  309.                 LAB_LABEL,              label,\
  310.                 LAB_UNDERSCORE,         "_",\
  311.                 GA_ID,                  id,\
  312.                 FRM_TYPE,               FRTYPE_BUTTON,\
  313.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  314.                 GA_SELECTED,            state,\
  315.         EndObject
  316. #define XenCheckBoxNF(label,state,id)\
  317.         CheckBoxObject,\
  318.                 LAB_LABEL,              label,\
  319.                 GA_ID,                  id,\
  320.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  321.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  322.                 GA_SELECTED,            state,\
  323.         EndObject
  324. #define XenKeyCheckBoxNF(label,state,id)\
  325.         CheckBoxObject,\
  326.                 LAB_LABEL,              label,\
  327.                 LAB_UNDERSCORE,         "_",\
  328.                 GA_ID,                  id,\
  329.                 FRM_TYPE,               FRTYPE_XEN_BUTTON,\
  330.                 FRM_FLAGS,              FRF_EDGES_ONLY,\
  331.                 GA_SELECTED,            state,\
  332.         EndObject
  333. /* "Quick" info object creation macros. */
  334. #define InfoFixed(label,text,args,numlines)\
  335.         InfoObject,\
  336.                 LAB_LABEL,              label,\
  337.                 FRM_TYPE,               FRTYPE_BUTTON,\
  338.                 FRM_FLAGS,              FRF_RECESSED,\
  339.                 INFO_TEXTFORMAT,        text,\
  340.                 INFO_ARGS,              args,\
  341.                 INFO_MINLINES,          numlines,\
  342.                 INFO_FIXTEXTWIDTH,      TRUE,\
  343.         EndObject
  344. #define InfoObj(label,text,args,numlines)\
  345.         InfoObject,\
  346.                 LAB_LABEL,              label,\
  347.                 FRM_TYPE,               FRTYPE_BUTTON,\
  348.                 FRM_FLAGS,              FRF_RECESSED,\
  349.                 INFO_TEXTFORMAT,        text,\
  350.                 INFO_ARGS,              args,\
  351.                 INFO_MINLINES,          numlines,\
  352.         EndObject
  353. /* "Quick" string/integer creation macros. */
  354. #define StringG(label,contents,maxchars,id)\
  355.         StringObject,\
  356.                 LAB_LABEL,              label,\
  357.                 FRM_TYPE,               FRTYPE_RIDGE,\
  358.                 STRINGA_TEXTVAL,        contents,\
  359.                 STRINGA_MAXCHARS,       maxchars,\
  360.                 GA_ID,                  id,\
  361.         EndObject
  362. #define KeyString(label,contents,maxchars,id)\
  363.         StringObject,\
  364.                 LAB_LABEL,              label,\
  365.                 LAB_UNDERSCORE,         "_",\
  366.                 FRM_TYPE,               FRTYPE_RIDGE,\
  367.                 STRINGA_TEXTVAL,        contents,\
  368.                 STRINGA_MAXCHARS,       maxchars,\
  369.                 GA_ID,                  id,\
  370.         EndObject
  371. #define TabString(label,contents,maxchars,id)\
  372.         StringObject,\
  373.                 LAB_LABEL,              label,\
  374.                 FRM_TYPE,               FRTYPE_RIDGE,\
  375.                 STRINGA_TEXTVAL,        contents,\
  376.                 STRINGA_MAXCHARS,       maxchars,\
  377.                 GA_ID,                  id,\
  378.                 GA_TABCYCLE,            TRUE,\
  379.         EndObject
  380. #define TabKeyString(label,contents,maxchars,id)\
  381.         StringObject,\
  382.                 LAB_LABEL,              label,\
  383.                 LAB_UNDERSCORE,         "_",\
  384.                 FRM_TYPE,               FRTYPE_RIDGE,\
  385.                 STRINGA_TEXTVAL,        contents,\
  386.                 STRINGA_MAXCHARS,       maxchars,\
  387.                 GA_ID,                  id,\
  388.                 GA_TABCYCLE,            TRUE,\
  389.         EndObject
  390. #define Integer(label,contents,maxchars,id)\
  391.         StringObject,\
  392.                 LAB_LABEL,              label,\
  393.                 FRM_TYPE,               FRTYPE_RIDGE,\
  394.                 STRINGA_LONGVAL,        contents,\
  395.                 STRINGA_MAXCHARS,       maxchars,\
  396.                 GA_ID,                  id,\
  397.         EndObject
  398. #define KeyInteger(label,contents,maxchars,id)\
  399.         StringObject,\
  400.                 LAB_LABEL,              label,\
  401.                 LAB_UNDERSCORE,         "_",\
  402.                 FRM_TYPE,               FRTYPE_RIDGE,\
  403.                 STRINGA_LONGVAL,        contents,\
  404.                 STRINGA_MAXCHARS,       maxchars,\
  405.                 GA_ID,                  id,\
  406.         EndObject
  407. #define TabInteger(label,contents,maxchars,id)\
  408.         StringObject,\
  409.                 LAB_LABEL,              label,\
  410.                 FRM_TYPE,               FRTYPE_RIDGE,\
  411.                 STRINGA_LONGVAL,        contents,\
  412.                 STRINGA_MAXCHARS,       maxchars,\
  413.                 GA_ID,                  id,\
  414.                 GA_TABCYCLE,            TRUE,\
  415.         EndObject
  416. #define TabKeyInteger(label,contents,maxchars,id)\
  417.         StringObject,\
  418.                 LAB_LABEL,              label,\
  419.                 LAB_UNDERSCORE,         "_",\
  420.                 FRM_TYPE,               FRTYPE_RIDGE,\
  421.                 STRINGA_LONGVAL,        contents,\
  422.                 STRINGA_MAXCHARS,       maxchars,\
  423.                 GA_ID,                  id,\
  424.                 GA_TABCYCLE,            TRUE,\
  425.         EndObject
  426. /* STRINGA_PENS & STRINGA_ACTIVEPENS pen-pack macro */
  427. #define PackPens( a, b) (((Shl( b, 8) AND $FF00) OR (( a ) AND $00FF))
  428. /* "Quick" scroller creation macros. */
  429. #define HorizScroller(label,top,total,visible,id)\
  430.         PropObject,\
  431.                 LAB_LABEL,              label,\
  432.                 PGA_TOP,                top,\
  433.                 PGA_TOTAL,              total,\
  434.                 PGA_VISIBLE,            visible,\
  435.                 PGA_FREEDOM,            FREEHORIZ,\
  436.                 GA_ID,                  id,\
  437.                 PGA_ARROWS,             TRUE,\
  438.         EndObject
  439. #define VertScroller(label,top,total,visible,id)\
  440.         PropObject,\
  441.                 LAB_LABEL,              label,\
  442.                 PGA_TOP,                top,\
  443.                 PGA_TOTAL,              total,\
  444.                 PGA_VISIBLE,            visible,\
  445.                 GA_ID,                  id,\
  446.                 PGA_ARROWS,             TRUE,\
  447.         EndObject
  448. #define KeyHorizScroller(label,top,total,visible,id)\
  449.         PropObject,\
  450.                 LAB_LABEL,              label,\
  451.                 LAB_UNDERSCORE,         "_",\
  452.                 PGA_TOP,                top,\
  453.                 PGA_TOTAL,              total,\
  454.                 PGA_VISIBLE,            visible,\
  455.                 PGA_FREEDOM,            FREEHORIZ,\
  456.                 GA_ID,                  id,\
  457.                 PGA_ARROWS,             TRUE,\
  458.         EndObject
  459. #define KeyVertScroller(label,top,total,visible,id)\
  460.         PropObject,\
  461.                 LAB_LABEL,              label,\
  462.                 LAB_UNDERSCORE,         "_",\
  463.                 PGA_TOP,                top,\
  464.                 PGA_TOTAL,              total,\
  465.                 PGA_VISIBLE,            visible,\
  466.                 GA_ID,                  id,\
  467.                 PGA_ARROWS,             TRUE,\
  468.         EndObject
  469. /* "Quick" indicator creation macros. */
  470. #define Indicator(min,max,level,just)\
  471.         IndicatorObject,\
  472.                 INDIC_MIN,              min,\
  473.                 INDIC_MAX,              max,\
  474.                 INDIC_LEVEL,            level,\
  475.                 INDIC_JUSTIFICATION,    just,\
  476.         EndObject
  477. #define IndicatorFormat(min,max,level,just,format)\
  478.         IndicatorObject,\
  479.                 INDIC_MIN,              min,\
  480.                 INDIC_MAX,              max,\
  481.                 INDIC_LEVEL,            level,\
  482.                 INDIC_JUSTIFICATION,    just,\
  483.                 INDIC_FORMATSTRING,     format,\
  484.         EndObject
  485. /* "Quick" progress creation macros. */
  486. #define HorizProgress(label,min,max,done)\
  487.         ProgressObject,\
  488.                 LAB_LABEL,              label,\
  489.                 FRM_TYPE,               FRTYPE_BUTTON,\
  490.                 FRM_FLAGS,              FRF_RECESSED,\
  491.                 PROGRESS_MIN,           min,\
  492.                 PROGRESS_MAX,           max,\
  493.                 PROGRESS_DONE,          done,\
  494.         EndObject
  495. #define VertProgress(label,min,max,done)\
  496.         ProgressObject,\
  497.                 LAB_LABEL,              label,\
  498.                 FRM_TYPE,               FRTYPE_BUTTON,\
  499.                 FRM_FLAGS,              FRF_RECESSED,\
  500.                 PROGRESS_MIN,           min,\
  501.                 PROGRESS_MAX,           max,\
  502.                 PROGRESS_DONE,          done,\
  503.                 PROGRESS_VERTICAL,      TRUE,\
  504.         EndObject
  505. #define HorizProgressFS(label,min,max,done,fstr)\
  506.         ProgressObject,\
  507.                 LAB_LABEL,              label,\
  508.                 FRM_TYPE,               FRTYPE_BUTTON,\
  509.                 FRM_FLAGS,              FRF_RECESSED,\
  510.                 PROGRESS_MIN,           min,\
  511.                 PROGRESS_MAX,           max,\
  512.                 PROGRESS_DONE,          done,\
  513.                 PROGRESS_FORMATSTRING,  fstr,\
  514.         EndObject
  515. #define VertProgressFS(label,min,max,done,fstr)\
  516.         ProgressObject,\
  517.                 LAB_LABEL,              label,\
  518.                 FRM_TYPE,               FRTYPE_BUTTON,\
  519.                 FRM_FLAGS,              FRF_RECESSED,\
  520.                 PROGRESS_MIN,           min,\
  521.                 PROGRESS_MAX,           max,\
  522.                 PROGRESS_DONE,          done,\
  523.                 PROGRESS_VERTICAL,      TRUE,\
  524.                 PROGRESS_FORMATSTRING,  fstr,\
  525.         EndObject
  526. /* "Quick" slider creation macros. */
  527. #define HorizSlider(label,min,max,level,id)\
  528.         SliderObject,\
  529.                 LAB_LABEL,              label,\
  530.                 SLIDER_MIN,             min,\
  531.                 SLIDER_MAX,             max,\
  532.                 SLIDER_LEVEL,           level,\
  533.                 GA_ID,                  id,\
  534.         EndObject
  535. #define VertSlider(label,min,max,level,id)\
  536.         SliderObject,\
  537.                 LAB_LABEL,              label,\
  538.                 SLIDER_MIN,             min,\
  539.                 SLIDER_MAX,             max,\
  540.                 SLIDER_LEVEL,           level,\
  541.                 PGA_FREEDOM,            FREEVERT,\
  542.                 GA_ID,                  id,\
  543.         EndObject
  544. #define KeyHorizSlider(label,min,max,level,id)\
  545.         SliderObject,\
  546.                 LAB_LABEL,              label,\
  547.                 LAB_UNDERSCORE,         "_",\
  548.                 SLIDER_MIN,             min,\
  549.                 SLIDER_MAX,             max,\
  550.                 SLIDER_LEVEL,           level,\
  551.                 GA_ID,                  id,\
  552.         EndObject
  553. #define KeyVertSlider(label,min,max,level,id)\
  554.         SliderObject,\
  555.                 LAB_LABEL,              label,\
  556.                 LAB_UNDERSCORE,         "_",\
  557.                 SLIDER_MIN,             min,\
  558.                 SLIDER_MAX,             max,\
  559.                 SLIDER_LEVEL,           level,\
  560.                 PGA_FREEDOM,            FREEVERT,\
  561.                 GA_ID,                  id,\
  562.         EndObject
  563. /* "Quick" mx creation macros. */
  564. #define RightMx(label,labels,active,id)\
  565.         MxObject,\
  566.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  567.                 LAB_LABEL,              label,\
  568.                 MX_LABELS,              labels,\
  569.                 MX_ACTIVE,              active,\
  570.                 GA_ID,                  id,\
  571.         EndObject, FixMinSize
  572. #define LeftMx(label,labels,active,id)\
  573.         MxObject,\
  574.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  575.                 LAB_LABEL,              label,\
  576.                 MX_LABELS,              labels,\
  577.                 MX_ACTIVE,              active,\
  578.                 MX_LABELPLACE,          PLACE_LEFT,\
  579.                 GA_ID,                  id,\
  580.         EndObject, FixMinSize
  581. #define RightMxKey(label,labels,active,id)\
  582.         MxObject,\
  583.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  584.                 LAB_LABEL,              label,\
  585.                 LAB_UNDERSCORE,         "_",\
  586.                 MX_LABELS,              labels,\
  587.                 MX_ACTIVE,              active,\
  588.                 GA_ID,                  id,\
  589.         EndObject, FixMinSize
  590. #define LeftMxKey(label,labels,active,id)\
  591.         MxObject,\
  592.                 GROUP_STYLE,            GRSTYLE_VERTICAL,\
  593.                 LAB_LABEL,              label,\
  594.                 LAB_UNDERSCORE,         "_",\
  595.                 MX_LABELS,              labels,\
  596.                 MX_ACTIVE,              active,\
  597.                 MX_LABELPLACE,          PLACE_LEFT,\
  598.                 GA_ID,                  id,\
  599.         EndObject, FixMinSize
  600. #define Tabs(label,labels,active,id)\
  601.         MxObject,\
  602.                 MX_TABSOBJECT,          TRUE,\
  603.                 LAB_LABEL,              label,\
  604.                 MX_LABELS,              labels,\
  605.                 MX_ACTIVE,              active,\
  606.                 GA_ID,                  id,\
  607.         EndObject, FixMinHeight
  608. #define TabsKey(label,labels,active,id)\
  609.         MxObject,\
  610.                 MX_TABSOBJECT,          TRUE,\
  611.                 LAB_LABEL,              label,\
  612.                 LAB_UNDERSCORE,         "_",\
  613.                 MX_LABELS,              labels,\
  614.                 MX_ACTIVE,              active,\
  615.                 GA_ID,                  id,\
  616.         EndObject, FixMinHeight
  617. #define TabsEqual(label,labels,active,id)\
  618.         MxObject,\
  619.                 GROUP_EQUALWIDTH,       TRUE,\
  620.                 MX_TABSOBJECT,          TRUE,\
  621.                 LAB_LABEL,              label,\
  622.                 MX_LABELS,              labels,\
  623.                 MX_ACTIVE,              active,\
  624.                 GA_ID,                  id,\
  625.         EndObject, FixMinHeight
  626. #define TabsEqualKey(label,labels,active,id)\
  627.         MxObject,\
  628.                 GROUP_EQUALWIDTH,       TRUE,\
  629.                 MX_TABSOBJECT,          TRUE,\
  630.                 LAB_LABEL,              label,\
  631.                 LAB_UNDERSCORE,         "_",\
  632.                 MX_LABELS,              labels,\
  633.                 MX_ACTIVE,              active,\
  634.                 GA_ID,                  id,\
  635.         EndObject, FixMinHeight
  636. #define USDTabs(label,labels,active,id)\
  637.         MxObject,\
  638.                 MX_TABSOBJECT,      TRUE,\
  639.                 LAB_LABEL,          label,\
  640.                 MX_LABELS,          labels,\
  641.                 MX_ACTIVE,          active,\
  642.                 MX_TABSUPSIDEDOWN,  TRUE,\
  643.                 GA_ID,              id,\
  644.         EndObject, FixMinHeight
  645. #define USDTabsKey(label,labels,active,id)\
  646.         MxObject,\
  647.                 MX_TABSOBJECT,      TRUE,\
  648.                 LAB_LABEL,          label,\
  649.                 LAB_UNDERSCORE,     "_",\
  650.                 MX_LABELS,          labels,\
  651.                 MX_ACTIVE,          active,\
  652.                 MX_TABSUPSIDEDOWN,  TRUE,\
  653.                 GA_ID,              id,\
  654.         EndObject, FixMinHeight
  655. #define USDTabsEqual(label,labels,active,id)\
  656.         MxObject,\
  657.                 GROUP_EQUALWIDTH,   TRUE,\
  658.                 MX_TABSOBJECT,      TRUE,\
  659.                 LAB_LABEL,          label,\
  660.                 MX_LABELS,          labels,\
  661.                 MX_ACTIVE,          active,\
  662.                 MX_TABSUPSIDEDOWN,  TRUE,\
  663.                 GA_ID,              id,\
  664.         EndObject, FixMinHeight
  665. #define USDTabsEqualKey(label,labels,active,id)\
  666.         MxObject,\
  667.                 GROUP_EQUALWIDTH,   TRUE,\
  668.                 MX_TABSOBJECT,      TRUE,\
  669.                 LAB_LABEL,          label,\
  670.                 LAB_Underscore,     "_",\
  671.                 MX_LABELS,          labels,\
  672.                 MX_ACTIVE,          active,\
  673.                 MX_TABSUPSIDEDOWN,  TRUE,\
  674.                 GA_ID,              id,\
  675.         EndObject, FixMinHeight
  676. /* "Quick" listview creation macros. */
  677. #define StrListview(label,strings,id)\
  678.         ListviewObject,\
  679.                 LAB_LABEL,              label,\
  680.                 GA_ID,                  id,\
  681.                 LISTV_ENTRYARRAY,       strings,\
  682.         EndObject
  683. #define StrListviewSorted(label,strings,id)\
  684.         ListviewObject,\
  685.                 LAB_LABEL,              label,\
  686.                 GA_ID,                  id,\
  687.                 LISTV_ENTRYARRAY,       strings,\
  688.                 LISTV_SORTENTRYARRAY,   TRUE,\
  689.         EndObject
  690. #define ReadStrListview(label,strings)\
  691.         ListviewObject,\
  692.                 LAB_LABEL,              label,\
  693.                 LISTV_ENTRYARRAY,       strings,\
  694.                 LISTV_READONLY,         TRUE,\
  695.         EndObject
  696. #define ReadStrListviewSorted(label,strings)\
  697.         ListviewObject,\
  698.                 LAB_LABEL,              label,\
  699.                 LISTV_ENTRYARRAY,       strings,\
  700.                 LISTV_SORTENTRYARRAY,   TRUE,\
  701.                 LISTV_READONLY,         TRUE,\
  702.         EndObject
  703. #define MultiStrListview(label,strings,id)\
  704.         ListviewObject,\
  705.                 LAB_LABEL,              label,\
  706.                 GA_ID,                  id,\
  707.                 LISTV_ENTRYARRAY,       strings,\
  708.                 LISTV_MULTISELECT,      TRUE,\
  709.         EndObject
  710. #define MultiStrListviewSorted(label,strings,id)\
  711.         ListviewObject,\
  712.                 LAB_LABEL,              label,\
  713.                 GA_ID,                  id,\
  714.                 LISTV_ENTRYARRAY,       strings,\
  715.                 LISTV_SORTENTRYARRAY,   TRUE,\
  716.                 LISTV_MULTISELECT,      TRUE,\
  717.         EndObject
  718. /* "Quick" separator bar creation macros. */
  719. #define VertSeparator \
  720.         SeparatorObject,\
  721.                 SEP_RECESSED,           TRUE,\
  722.         EndObject, FixMinWidth
  723. #define VertThinSeparator \
  724.         SeparatorObject,\
  725.                 SEP_THIN,               TRUE,\
  726.                 SEP_RECESSED,           TRUE,\
  727.         EndObject, FixMinWidth
  728. #define HorizSeparator \
  729.         SeparatorObject,\
  730.                 SEP_HORIZ,              TRUE,\
  731.                 SEP_RECESSED,           TRUE,\
  732.         EndObject, FixMinHeight
  733. #define TitleSeparator(t)\
  734.         SeparatorObject,\
  735.                 SEP_HORIZ,              TRUE,\
  736.                 SEP_RECESSED,           TRUE,\
  737.                 SEP_TITLE,              t,\
  738.         EndObject, FixMinHeight
  739. #define HTitleSeparator(t)\
  740.         SeparatorObject,\
  741.                 SEP_HORIZ,              TRUE,\
  742.                 SEP_RECESSED,           TRUE,\
  743.                 SEP_TITLE,              t,\
  744.                 SEP_HIGHLIGHT,          TRUE,\
  745.         EndObject, FixMinHeight
  746. #define CTitleSeparator(t)\
  747.         SeparatorObject,\
  748.                 SEP_HORIZ,              TRUE,\
  749.                 SEP_RECESSED,           TRUE,\
  750.                 SEP_TITLE,              t,\
  751.                 SEP_CENTERTITLE,        TRUE,\
  752.         EndObject, FixMinHeight
  753. #define CHTitleSeparator(t)\
  754.         SeparatorObject,\
  755.                 SEP_HORIZ,              TRUE,\
  756.                 SEP_RECESSED,           TRUE,\
  757.                 SEP_TITLE,              t,\
  758.                 SEP_HIGHLIGHT,          TRUE,\
  759.                 SEP_CENTERTITLE,        TRUE,\
  760.         EndObject, FixMinHeight
  761. #define TitleSeparatorLeft(t)\
  762.         SeperatorObject,\
  763.                 SEP_HORIZ,              TRUE,\
  764.                 SEP_TITLE,              t,\
  765.                 SEP_TITLELeft,          TRUE,\
  766.         EndObject, FixMinHeight
  767. #define HTitleSeparatorLeft(t)\
  768.         SeperatorObject,\
  769.                 SEP_HORIZ,              TRUE,\
  770.                 SEP_TITLE,              t,\
  771.                 SEP_HIGHLIGHT,          TRUE,\
  772.                 SEP_TITLELeft,          TRUE,\
  773.         EndObject, FixMinHeight
  774. #define CTitleSeparatorLeft(t)\
  775.         SeperatorObject,\
  776.                 SEP_HORIZ,              TRUE,\
  777.                 SEP_TITLE,              t,\
  778.                 SEP_CENTERTITLE,        TRUE,\
  779.                 SEP_TITLELeft,          TRUE,\
  780.         EndObject, FixMinHeight
  781. #define CHTitleSeparatorLeft(t)\
  782.         SeperatorObject,\
  783.                 SEP_HORIZ,              TRUE,\
  784.                 SEP_TITLE,              t,\
  785.                 SEP_HIGHLIGHT,          TRUE,\
  786.                 SEP_CENTERTITLE,        TRUE,\
  787.                 SEP_TITLELeft,          TRUE,\
  788.         EndObject, FixMinHeight
  789. /* Typos */
  790. #define VertSeperator           VertSeparator
  791. #define VertThinSeperator       VertThinSeparator
  792. #define HorizSeperator          HorizSeparator
  793. #define TitleSeperator          TitleSeparator
  794. #define HTitleSeperator         HTitleSeparator
  795. #define CTitleSeperator         CTitleSeparator
  796. #define CHTitleSeperator        CHTitleSeparator
  797. /* Some simple menu macros */
  798. #define Title(t)                 NM_TITLE, 0, t, NIL, 0, 0, NIL
  799. #define Item(t,s,i)              NM_ITEM, 0, t, s, 0, 0, i
  800. #define ItemBar                  NM_ITEM, 0, NM_BARLABEL, NIL, 0, 0, NIL
  801. #define SubItem(t,s,i)           NM_SUB, 0, t, s, 0, 0, i
  802. #define SubBar                   NM_SUB, 0, NM_BARLABEL, NIL, 0, 0, NIL
  803. #define End                      NM_END, 0, NIL, NIL, 0, 0, NIL
  804. /* Some object macros */
  805. #define AbleObject(win,object,value)\
  806.         SetGadgetAttrsA(object,win,NIL,[GA_DISABLED,value,TAG_DONE])
  807. #define DisableObject(win,object)\
  808.         AbleObject(win,object,TRUE)
  809. #define EnableObject(win,object)\
  810.         AbleObject(win,object,FALSE)
  811. /* Base class method macros. */
  812. #define AddMap(object,target,map)\
  813.         domethod( object, [ BASE_ADDMAP, target, map ] )
  814. #define AddCondit(object,target,ttag,tdat,ftag,fdat,stag,sdat)\
  815.         domethod( object, [ BASE_ADDCONDITIONAL, target,\
  816.                   ttag, tdat,\
  817.                   ftag, fdat,\
  818.                   stag, sdat ] )
  819. #define AddHook(object,hook)\
  820.         domethod( object, [ BASE_ADDHOOK, hook ] )
  821. #define RemMap(object,target)\
  822.         domethod( object, [ BASE_REMMAP, target  ] )
  823. #define RemCondit(object,target)\
  824.         domethod( object, [ BASE_REMCONDITIONAL, target ] )
  825. #define RemHook( object,hook)\
  826.         domethod( object, [ BASE_REMHOOK, hook ] )
  827. /* Listview class method macros. */
  828. #define AddEntry(window,object,entry,how)\
  829.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  830.                              NIL, entry, how, 0 ] )
  831. #define AddEntryVisible(window,object,entry,how)\
  832.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  833.                              NIL, entry, how, LVASF_MAKEVISIBLE ] )
  834. #define AddEntrySelect(window,object,entry,how)\
  835.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_ADDSINGLE,\
  836.                              NIL, entry, how, LVASF_SELECT ] )
  837. #define InsertEntry(window,object,entry,where)\
  838.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  839.                             NIL, where, entry, 0 ] )
  840. #define InsertEntryVisible(window,object,entry,where)\
  841.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  842.                              NIL, where, entry, LVASF_MAKEVISIBLE ] )
  843. #define InsertEntrySelect(window,object,entry,where)\
  844.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_INSERTSINGLE,\
  845.                             NIL, where, entry, LVASF_SELECT ] )
  846. #define ClearList(window,object)\
  847.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_CLEAR, NIL ] )
  848. #define FirstEntry(object)\
  849.         domethod( object, [ LVM_FIRSTENTRY, NIL, 0 ] )
  850. #define FirstSelected(object)\
  851.         domethod( object, [ LVM_FIRSTENTRY, NIL, LVGEF_SELECTED ] )
  852. #define LastEntry(object)\
  853.         domethod( object, [ LVM_LASTENTRY, NIL, 0 ] )
  854. #define LastSelected(object)\
  855.         domethod( object, [ LVM_LASTENTRY, NIL, LVGEF_SELECTED ] )
  856. #define NextEntry(object,last)\
  857.         domethod( object, [ LVM_NEXTENTRY, last, 0 ] )
  858. #define NextSelected(object,last)\
  859.         domethod( object, [ LVM_NEXTENTRY, last, LVGEF_SELECTED ] )
  860. #define PrevEntry(object,last)\
  861.         domethod( object, [ LVM_PREVENTRY, last, 0 ] )
  862. #define PrevSelected(object,last)\
  863.         domethod( object, [ LVM_PREVENTRY, last, LVGEF_SELECTED ] )
  864. #define RemoveEntry(object,entry)\
  865.         domethod( object, [ LVM_REMENTRY, NIL, entry ] )
  866. #define RemoveEntryVisible(window,object,entry)\
  867.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMENTRY, NIL, entry ] )
  868. #define RefreshList(window,object)\
  869.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REFRESH, NIL ] )
  870. #define RedrawList(window,object)\
  871.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REDRAW, NIL ] )
  872. #define SortList(window,object)\
  873.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_SORT, NIL ] )
  874. #define LockList(object)\
  875.         domethod( object, [ LVM_LOCKLIST, NIL ] )
  876. #define UnlockList(window,object)\
  877.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_UNLOCKLIST, NIL ] )
  878. #define MoveEntry(window,object,entry,dir)\
  879.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_MOVE, NIL,\
  880.                              entry, dir ] )
  881. #define MoveSelectedEntry(window,object,dir)\
  882.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_MOVE, NIL,\
  883.                              NIL, dir ] )
  884. #define ReplaceEntry(window,object,old,new)\
  885.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REPLACE, NIL,\
  886.                              old, new ] )
  887. #define RemoveSelected(window,object)\
  888.         BgUI_DoGadgetMethodA( object, window, NIL, [ LVM_REMSELECTED, NIL ] )
  889. /* Window class method macros. */
  890. #define GadgetKey(wobj,gobj,key)\
  891.         domethod( wobj, [ WM_GADGETKEY, NIL, gobj, key ] )
  892. #define WindowOpen(wobj)\
  893.         domethod( wobj, [ WM_OPEN ] )
  894. #define WindowClose(wobj)\
  895.         domethod( wobj, [ WM_CLOSE ] )
  896. #define WindowBusy(wobj)\
  897.         domethod( wobj, [ WM_SLEEP ] )
  898. #define WindowReady(wobj)\
  899.         domethod( wobj, [ WM_WAKEUP ] )
  900. #define HandleEvent(wobj)\
  901.         domethod( wobj, [ WM_HANDLEIDCMP ] )
  902. #define DisableMenu(wobj,id,set)\
  903.         domethod( wobj, [ WM_DISABLEMENU, id, set ] )
  904. #define CheckItem(wobj,id,set)\
  905.         domethod( wobj, [ WM_CHECKITEM, id, set ] )
  906. #define MenuDisabled(wobj,id)\
  907.         domethod( wobj, [ WM_MENUDISABLED, id ] )
  908. #define ItemChecked(wobj,id)\
  909.         domethod( wobj, [ WM_ITEMCHECKED, id ] )
  910. #define GetAppMsg(wobj)\
  911.         domethod( wobj, [ WM_GETAPPMSG ] )
  912. #define AddUpdate(wobj,id,target,map)\
  913.         domethod( wobj, [ WM_ADDUPDATE, id, target, map ] )
  914. /* Commodity class method macros. */
  915. #define AddHotkey(broker,desc,id,flags)\
  916.         domethod( broker, [ CM_ADDHOTKEY, desc, id, flags ] )
  917. #define RemHotkey(broker,id)\
  918.         domethod( broker, [ CM_REMHOTKEY, id ] )
  919. #define DisableHotkey(broker,id)\
  920.         domethod( broker, [ CM_DISABLEHOTKEY, id ] )
  921. #define EnableHotKey(broker,id)\
  922.         domethod( broker, [ CM_ENABLEHOTKEY, id ] )
  923. #define EnableBroker(broker)\
  924.         domethod( broker, [ CM_ENABLEBROKER ] )
  925. #define DisableBroker(broker)\
  926.         domethod( broker, [ CM_DISABLEBROKER ] )
  927. #define MsgInfo(broker,type,id,data)\
  928.         domethod( broker, [ CM_MSGINFO,\
  929.                             type,\
  930.                             id,\
  931.                             data ] )
  932. /* FileReq class method macros. */
  933. #define DoRequest(object)\
  934.         domethod( object, [ FRM_DOREQUEST ] )
  935.